package com.yilin.tms.order.mapper.statistics;

import com.yilin.tms.core.entity.data.statistics.StatisticsTrends;
import com.yilin.tms.core.entity.data.statistics.order.goods.*;
import com.yilin.tms.core.entity.data.statistics.order.rob.RobStatistics;
import com.yilin.tms.core.entity.data.statistics.order.rob.RobStatusCake;
import com.yilin.tms.core.entity.data.statistics.order.rob.RobTypeCake;
import com.yilin.tms.core.entity.data.statistics.order.transit.TransitStatistics;
import com.yilin.tms.core.entity.data.statistics.order.transit.TransitStatusCake;
import com.yilin.tms.core.entity.data.statistics.order.transit.TransitTmsStatusCake;
import com.yilin.tms.core.entity.user.account.Account;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Mapper
@Repository
public interface OrderStatisticsMapper {
    /**
     * 货源总计,本年、本月、今日计数
     */
    GoodsStatistics getGoodsCount(@Param("loginUser") Account loginUser);

    /**
     * 货源状态分布饼图
     */
    GoodsStatusCake getGoodsStatusCake(@Param("loginUser") Account loginUser);

    /**
     * 货源计价模式分布饼图
     */
    GoodsPriceModeCake getGoodsPriceModeCake(@Param("loginUser") Account loginUser);

    /**
     * 货源结算方式分布饼图
     */
    GoodsSettlementTypeCake getGoodsSettlementTypeCake(@Param("loginUser") Account loginUser);

    /**
     * 货源类型分布饼图
     */
    GoodsTypeCake getGoodsTypeCake(@Param("loginUser") Account loginUser);

    /**
     * 新增货源趋势折线图
     */
    List<StatisticsTrends> getGoodsAddTrends(@Param("loginUser") Account loginUser);

    /**
     * 抢单总计,本年、本月、今日计数
     */
    RobStatistics getRobCount(@Param("loginUser") Account loginUser);

    /**
     * 抢单状态分布饼图
     */
    RobStatusCake getRobStatusCake(@Param("loginUser") Account loginUser);

    /**
     * 抢单类型分布饼图
     */
    RobTypeCake getRobTypeCake(@Param("loginUser") Account loginUser);

    /**
     * 新增抢单趋势折线图
     */
    List<StatisticsTrends> getRobAddTrends(@Param("loginUser") Account loginUser);

    /**
     * 运单总计,本年、本月、今日计数
     */
    TransitStatistics getTransitCount(@Param("loginUser") Account loginUser);

    /**
     *运单状态分布饼图
     */
    TransitStatusCake getTransitStatusCake(@Param("loginUser") Account loginUser);

    /**
     * 运单省运管状态饼图
     */
    TransitTmsStatusCake getTransitTmsStatusCake(@Param("loginUser") Account loginUser);

    /**
     * 新增运单趋势折线图
     */
    List<StatisticsTrends> getTransitAddTrends(@Param("loginUser") Account loginUser);
}
